System and method for efficiently performing data transfer operations

ABSTRACT

A system and method for efficiently performing data transfer operations includes a source device for providing transfer data through a communication path or network to a destination device. The source device has a transfer manager that determines various transfer parameters including a transfer data size, a transfer speed, and a transfer duration. The transfer parameters are then presented on a user interface for interactive use by a system user to manipulate the transfer data with various transfer options to thereby perform the data transfer operation in an optimal manner under current transfer conditions.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application relates to, and claims priority in, U.S. Provisional Patent Application Ser. No. 60/187,319, entitled “Camera Features Transfer Time Indicator,” filed on Mar. 6, 2000. The foregoing related application is commonly assigned, and is hereby incorporated by reference.

BACKGROUND SECTION

[0002] 1. Field of the Invention

[0003] This invention relates generally to techniques for transferring electronic information, and relates more particularly to a system and method for efficiently performing data transfer operations.

[0004] 2. Description of the Background Art

[0005] Implementing efficient methods for transferring information is a significant consideration for designers and manufacturers of contemporary electronic devices. However, efficiently transferring information with electronic devices may create substantial challenges for system designers. For example, enhanced demands for increased device functionality and performance may require more system processing power and require additional hardware resources. An increase in processing or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.

[0006] Furthermore, enhanced device capability to perform various advanced data transfer operations may provide additional benefits to a system user, but may also place increased demands on the control and management of various device components. For example, an enhanced electronic device that effectively transfers digital image data may benefit from an efficient implementation because of the large amount and complexity of the digital data involved.

[0007] Due to growing demands on system resources and substantially increasing data magnitudes, it is apparent that developing new techniques for transferring information is a matter of concern for related electronic technologies. Therefore, for all the foregoing reasons, developing effective systems for transferring information remains a significant consideration for designers, manufacturers, and users of contemporary electronic devices.

SUMMARY

[0008] In accordance with the present invention, a system and method are disclosed for efficiently performing data transfer operations. In one embodiment, initially, an electronic device waits for a data transfer request from a system user or other source (such as application software) to perform a data transfer operation using selected transfer data. In certain embodiments, the electronic device may be implemented as a digital camera device, and the transfer data may include captured digital image data.

[0009] If the electronic device receives a data transfer request, then a transfer manager from the electronic device may preferably determine a transfer data size value corresponding to the specific transfer data for the requested data transfer operation. In addition, a bandwidth monitor from the transfer manager may preferably determine the current bandwidth (or transfer speed value) for the communication link between the electronic device and a particular destination device for the proposed data transfer operation.

[0010] A calculation module from the transfer manager may then preferably calculate a transfer time value for the proposed data transfer operation. The transfer manager may determine the foregoing transfer time value using any appropriate technique. For example, the transfer manager may utilize the previously-determined transfer data size value and transfer speed value to determine a transfer time value.

[0011] A user interface module and a display manager from the electronic device may then preferably access various transfer parameters from a local memory, and responsively display the transfer parameters for viewing by a system user. The transfer parameters preferably may include the transfer data size value, the transfer speed value, and the transfer time value discussed above.

[0012] Next, the system user may determine whether the displayed transfer parameters (in particular, the transfer time value) are acceptable under current circumstances. If the displayed transfer parameters are acceptable to the system user, then the electronic device may preferably perform the proposed data transfer operation after receiving an authorization from the system user.

[0013] However, if the displayed transfer parameters are not acceptable to the system user, then the electronic device may preferably display various transfer options for viewing by the system user. The system user may then interactively utilize the displayed transfer options to manipulate the transfer data for an optimal performance of the data transfer operation. The present invention may then preferably return to recalculate and display updated transfer parameters until the system user accepts the current updated transfer parameters and authorizes the proposed data transfer operation. The present invention thus provides an improved system and method for efficiently performing data transfer operations.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is a block diagram for one embodiment of an electronic device, in accordance with the present invention;

[0015]FIG. 2 is a block diagram for one embodiment of the memory of FIG. 1, in accordance with the present invention;

[0016]FIG. 3 is a block diagram for one embodiment of the application software of FIG. 2, in accordance with the present invention;

[0017]FIG. 4 is a block diagram for one embodiment of the transfer manager of FIG. 2, in accordance with the present invention;

[0018]FIG. 5 is a block diagram for one embodiment of the I/O interface(s) of FIG. 1, in accordance with the present invention;

[0019]FIG. 6 is a block diagram for one embodiment of the display of FIG. 1, in accordance with the present invention;

[0020]FIG. 7 is a block diagram of an electronic data transfer system, in accordance with one embodiment of the present invention; and

[0021]FIG. 8 is a flowchart of method steps for efficiently performing a data transfer operation, in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION

[0022] The present invention relates to an improvement in information transfer techniques. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.

[0023] The present invention comprises a system and method for efficiently performing data transfer operations, and preferably includes a source electronic device for providing transfer data through a communication path or network to a destination electronic device or entity. The source electronic device preferably has a transfer manager that determines various transfer parameters that may include a transfer data size, a transfer speed, and a transfer duration. The transfer parameters may then be presented on a user interface for interactive use by a system user to manipulate the transfer data using various transfer options, to thereby perform the data transfer operation in an optimal manner under the current data transfer conditions.

[0024] Referring now to FIG. 1, a block diagram for one embodiment of an electronic device 110 is shown, in accordance with the present invention. In the FIG. 1 embodiment, electronic device 110 preferably includes, but is not limited to, a central processing unit (CPU) 112, a user interface 114, memory 116, a display 118, input/output interface(s) (I/O interface(s)) 120, and a sound module 124. The foregoing components of electronic device 110 may preferably be coupled to, and communicate through, a device bus 128.

[0025] In alternate embodiments, electronic device 110 may readily be implemented using various components and configurations in addition to, or instead of, those discussed in conjunction with the FIG. 1 embodiment. In addition, electronic device 110 may readily be implemented to include any appropriate type of electronic device or entity. For example, electronic device 110 may be effectively implemented as an electronic still camera, an electronic video camera, a personal digital assistant (PDA) device, an electronic scanner device, a cellular telephone, or a portable electronic data capture device.

[0026] In the FIG. 1 embodiment, CPU 112 may be implemented to include any appropriate and compatible microprocessor device that preferably executes software instructions to thereby control and manage the operation of electronic device 110. The FIG. 1 display 118 preferably may include any effective type of display technology including a cathode-ray-tube monitor or a liquid-crystal display device. In certain embodiments, display 118 may be attached to an exterior surface of electronic device 110 with a hinge mechanism to permit display 118 to be folded against electronic device 110 when not in use, or during transport. Display 118 is further discussed below in conjunction with FIG. 6.

[0027] In the FIG. 1 embodiment, I/O interface(s) 120 preferably may include one or more input and/or output interfaces to receive and/or transmit any required types of relevant information by electronic device 110. I/O interface(s) 120 are further discussed below in conjunction with FIG. 5. In the FIG. 1 embodiment, memory 116 may be implemented to include any combination of desired storage devices, including, but not limited to, read-only memory (ROM), random-access memory (RAM), and various types of non-volatile memory, such as floppy disks or hard disks. The contents and functionality of memory 116 are further discussed below in conjunction with FIGS. 2 through 4.

[0028] Sound module 124 preferably may include appropriate interfaces to support audio functionality for electronic device 110. For example, in certain embodiments, sound module 124 may include, but is not limited to, an audio processing module, a power amplifier, one or more speaker devices, and a microphone device.

[0029] In the FIG. 1 embodiment, user interface 114 preferably may include any effective means to allow a system user to communicate with electronic device 110. For example, user interface 114 may support a keyboard device, a wireless remote control device, a speech-recognition module with corresponding microphone, a graphical user interface with touch-screen capability, or a selection button array mounted externally on electronic device 110. The functionality and operation of electronic device 110 is further discussed below in conjunction with FIGS. 2 through 8.

[0030] Referring now to FIG. 2, a block diagram for one embodiment of the FIG. 1 memory 116 is shown, in accordance with the present invention. In the FIG. 1 embodiment, memory 116 preferably includes, but is not limited to, application software 212, an operating system 214, data 216, a transfer manager 218, and a display manager 222. In alternate embodiments, memory 116 may readily include various other components in addition to, or instead of, those components discussed in conjunction with the FIG. 2 embodiment.

[0031] In the FIG. 2 embodiment, application software 212 may include program instructions that are preferably executed by CPU 112 (FIG. 1) to perform various functions and operations for electronic device 110. The particular nature and functionality of application software 212 preferably varies depending upon factors such as the specific type and particular use of the corresponding electronic device 110. The configuration and functionality of application software 212 is further discussed below in conjunction with FIG. 3.

[0032] In the FIG. 2 embodiment, operating system 214 preferably controls and coordinates low-level functionality of electronic device 110. Data 216 preferably includes various types of data that may be stored in memory 116. Data 216 preferably may include various types of captured image data, sound data, or other types of information. In accordance with the present invention, transfer manager 218 preferably may include program instructions for efficiently performing a data transfer operation. The operation and utilization of transfer manager 218 is further discussed below in conjunction with FIGS. 7 and 8.

[0033] In the FIG. 2 embodiment, display manager 222 preferably coordinates and controls the presentation of appropriate visual information on display 118 in response to instructions from application software 212. In certain embodiments, display manager 222 and associated hardware components may support a high-resolution display output for presentation of data 216 and user interface 114.

[0034] Referring now to FIG. 3, a block diagram for one embodiment of the FIG. 2 application software 212 is shown, in accordance with the present invention. In the FIG. 3 embodiment, application software 212 preferably may include, but is not limited to, a communications manager 312, a user interface module 320, a data manager 324, and miscellaneous routines 328. In alternate embodiments, application software 212 may readily include various other components in addition to, or instead of, those components discussed in conjunction with the FIG. 3 embodiment.

[0035] In the FIG. 3 embodiment, communications manager 312 preferably may coordinate the downloading and storing of various types of information from any appropriate source. In addition, communications manage 312 preferably may control the transfer of data 216 to various appropriate destinations. For example, communications manager 312 may provide data 216 to a destination device or to a networked destination entity such as a server on the Internet. User interface module 320 may preferably control various procedures for interactively providing information on user interface 114, in accordance with the present invention.

[0036] In the FIG. 3 embodiment, data manager 324 preferably may manage data 216 that is stored in electronic device 110. For example, data manager 324 may create and restructure data 216 into various directories and folders to effectively organize various portions of data 216. Miscellaneous routines 328 may include any desired software instructions to facilitate functions performed by electronic device 110. For example, miscellaneous routines 328 may include a data transformation routine that translates 216 into an uploadable format that is compatible with a selected destination entity.

[0037] Referring now to FIG. 4, a block diagram for one embodiment of the FIG. 2 transfer manager 218 is shown, in accordance with the present invention. In the FIG. 4 embodiment, transfer manager 218 preferably may include a bandwidth monitor 412, a calculation module 416, an option manager 420, a data editor 424, and one or more transfer parameters 428. In alternate embodiments of the present invention, transfer manager 218 may readily be implemented to include various other configurations, and may also include various items and components that are different from those discussed in conjunction with the FIG. 4 embodiment.

[0038] In the FIG. 4 embodiment, transfer manager 218 may preferably utilize bandwidth monitor 412 to accurately determine a bandwidth or transfer speed for a particular data transfer operation to transmit data 216 to a destination device or entity. In the FIG. 4 embodiment, the foregoing bandwidth or transfer speed may preferably be expressed in bits per second. However, in alternate embodiments, bandwidth may be expressed in any suitable manner.

[0039] In the FIG. 4 embodiment, calculation module 416 may preferably access the foregoing transfer speed from bandwidth monitor 412. Calculation module 416 may also access data 216 to determine a corresponding data size value. Calculation module 416 may then calculate a transfer time for a requested data transfer operation. In the FIG. 4 embodiment, calculation module 416 may determine the foregoing transfer time according to the following formula:

Transfer Time=Data Size/Transfer Speed

[0040] where Transfer Time is the amount of time required to complete a requested data transfer operation in seconds, Data Size is the size of data 216 to be transferred in bits, and Transfer Speed is the bandwidth of a particular transfer path for the data transfer operation in bits per second.

[0041] Option manager 420 may be utilized by electronic device 110 to present one or more transfer options by which a system user may interactively manipulate data 216 to efficiently perform a data transfer operation. Similarly, once a particular transfer option is chosen with option manager 420, then data editor 424 may manipulate data 216 in various ways to facilitate a more efficient data transfer operation.

[0042] In the FIG. 4 embodiment, transfer parameters 428 may include any desired values for use by electronic device 110 to efficiently perform a data transfer operation. For example, in certain embodiments, transfer parameters 416 may include at least one of a transfer data size value, a transfer speed value, and a transfer time value. The operation and utilization of transfer manager 218 is further discussed below in conjunction with FIGS. 6 through 8.

[0043] Referring now to FIG. 5, a block diagram for one embodiment of the FIG. 1 I/O interface(s) 120 is shown, in accordance with the present invention. In the FIG. 5 embodiment, I/O interface(s) 120 preferably may communicate with various input or output entities that may include, but are not limited to, network(s) 512, a host computer 516, cellular telephones 520, a user interface 114, wireless communications 532, and removable storage media 536. I/O interface(s) 120 may preferably communicate with electronic device 110 via device bus 128. In alternate embodiments, I/O interface(s) 120 may readily include various other elements and functionalities in addition to, or instead of, those discussed in conjunction with the FIG. 5 embodiment. In addition, I/O interface(s) 120 may be implemented and configured using any effective technology or method.

[0044] In the FIG. 5 embodiment, electronic device 110 may utilize I/O interface(s) 120 to bi-directionally communicate with one or more network(s) 512. For example, electronic device 110 may advantageously communicate with the Internet or other distributed computer networks to upload or download various types of data 216.

[0045] Electronic device 110 may also utilize I/O interface(s) 120 to bi-directionally communicate with a host computer 516. For example, electronic device 110 may communicate with a personal computer device over a Universal Serial Bus (USB) to effectively upload or download various types of data 216. The foregoing personal computer device may then be utilized to process, manipulate, and otherwise utilize the data 216 from electronic device 110. In the FIG. 5 embodiment, electronic device 110 may utilize I/O interface(s) 120 to bi-directionally communicate with one or more cellular telephones 520 to preferably transmit any desired data 216 from electronic device 110.

[0046] In the FIG. 5 embodiment, user interface 114 preferably may include any effective means to allow a system user to communicate with electronic device 110. For example, user interface 114 may support a keyboard device, a wireless remote control device, a speech-recognition module with corresponding microphone, a graphical user interface with touch-screen capability on display 118, or a selection button array mounted externally on electronic device 110.

[0047] In the FIG. 5 embodiment, electronic device 110 may also utilize I/O interface(s) 120 to bi-directionally communicate with various types of wireless communications 532. Wireless communications 532 preferably may include any effective means to remotely communicate with an external entity such as an Internet server or a cellular telephone network, to thereby provide data 216 from electronic device 1 10. Wireless communications 532 may be implemented using any appropriate wireless technology, including radio-frequency transmission, infra-red transmission, or micro-wave transmission.

[0048] In the FIG. 5 embodiment, removable storage media 536 may preferably be utilized to receive or provide any desired information for facilitating the operation of electronic device 110. In certain embodiments, removable storage media 536 may include memory devices to support any desired type or combination of removable storage media. For example, removable storage media 536 may include memory sticks, flash memory devices, compact disks, mini-disks, or floppy disks.

[0049] In addition to the various foregoing enumerated types of I/O interface(s) 120, electronic device 110 preferably may also include any required types of interfaces or connectors (not shown) for directly coupling electronic device 110 and other hardware devices to support bi-directional electronic communications.

[0050] Referring now to FIG. 6, a block diagram for one embodiment of the FIG. 1 display 118 is shown, in accordance with the present invention. In the FIG. 6 embodiment, display 118 preferably comprises, but is not limited to, a user interface 114 corresponding to a particular identified data transfer operation 616. The FIG. 6 embodiment is presented for purposes of illustration, and in alternate embodiments, display 118 may readily include various other elements in addition to, or instead of, those discussed in conjunction with the FIG. 6 embodiment.

[0051] In the FIG. 6 example, the user interface 114 shown on display 118 may include an identifier representation 616 corresponding to a current proposed data transfer operation that includes further representation fields for a transfer data size 618, a transfer speed 622, a transfer time 626, and one or more transfer options 630.

[0052] In the FIG. 6 embodiment, transfer data size 618 may include a total bit value for data 216 corresponding to a proposed data transfer operation. In alternate embodiments, transfer data size 618 may be expressed in any other appropriate manner. In the FIG. 6 embodiment, transfer speed 622 may include a transfer rate value for performing the proposed data transfer operation. Electronic device 110 may determine transfer speed 622 using any suitable method. Techniques for determining transfer speed 622 are further discussed below in conjunction with FIG. 7.

[0053] As discussed above in conjunction with FIG. 4, transfer time 626 may be calculated by electronic device 110 using any relevant information. In the FIG. 6 embodiment, transfer manager 218 preferably calculates transfer time 626 by referencing transfer data size 618 and transfer speed 622. A system user may then refer to transfer time 626 to determine whether the particular transfer time 626 is acceptable under current conditions and user constraints.

[0054] In the FIG. 6 embodiment, a system user may interactively utilize various transfer options 630 in the event that transfer time 630 is unacceptable or not optimal under current conditions. In alternate embodiments, transfer options 630 may readily be implemented as a separate user interface or dialog on electronic device 110 or elsewhere.

[0055] In accordance with the present invention, transfer options 630 may include any appropriate or desired means for allowing a system user to interact with electronic device 110 to efficiently perform a proposed data transfer operation. Transfer options 630 may include various data manipulation options for altering data 216 to facilitate acceptable performance of the proposed data transfer operation. In the FIG. 6 embodiment, transfer manager 218 may reduce the size of data 216 in response to system user instructions if transfer time 626 is excessive under the circumstances. For example, in an case in which data 216 includes image data, transfer manager 218 may resize the corresponding image, crop the image, change the image resolution, or perform various other data manipulation procedures on data 216.

[0056] Alternately, in cases in which transfer time 626 is not constrained, a system user may also advantageously utilize transfer manager 218 to perform various data enhancement procedures on data 216 with the ultimate result that transfer time 216 is increased instead of decreased. In addition to the foregoing data manipulation option for altering data 216, transfer options 630 may also include a send option to immediately perform the proposed data transfer operation, a cancel option for canceling the proposed data transfer operation (with the potential option of attempting the proposed data transfer operation at a later time), and a change mode option in which electronic device 110 may subsequently attempt to perform the proposed data transfer operation using a different communication technique that may provide more favorable transfer conditions.

[0057] Referring now to FIG. 7, a block diagram of an electronic data transfer system is shown, in accordance with one embodiment of the present invention. In the FIG. 7 embodiment, the electronic data transfer system preferably includes, but is not limited to, a source electronic device 110, a network 720, and a destination device 724. The FIG. 7 embodiment is presented for purposes of illustration, and in alternate embodiments of the present invention, electronic data transfer systems may readily include various other components or functionalities in addition to, or instead of, those discussed in conjunction with the FIG. 7 embodiment. In the FIG. 7 embodiment, a system user may issue a transfer request for performing a data transfer operation between electronic device 110 and destination device 724 using data 216 (FIG. 2). In the FIG. 7 embodiment, electronic device 110 and destination device 724 may be implemented as any appropriate electronic device, entity, node, or system.

[0058] In response, a bandwidth monitor 412 from transfer manager 218 of electronic device 110 may preferably determine the bandwidth or transfer speed of the transfer connection from electronic device 714, through source link 714, network 720, and destination link 716, to destination device 724. In the FIG. 7 embodiment, source link 714, network 720, and destination link 716 may include any desired communication path between electronic device 110 and destination device 724.

[0059] For example, source link 714, network 720, and destination link 716 may be a direct communication link (wired or wireless) between electronic device 110 and destination device 724 without any other nodes or devices. Alternately, network 720 may comprise any distributed electronic network of electronic devices or other entities. For example, network 720 may include a distributed local or wide-area computer network. In certain embodiments, network 720 may include the Internet with which communications manager 312 of electronic device 110 may connect to perform the proposed data transfer operation.

[0060] In the FIG. 7 embodiment, bandwidth monitor 412 may determine the foregoing transfer speed using any suitable technique. For example, network 720 may periodically provide a bandwidth value to electronic device 110 to thereby indicate current bandwidth conditions for data transfer operations through network 720. Bandwidth monitor 412 may then responsively convert the received bandwidth value into a current transfer speed value that may be stored into transfer parameters 428 in memory 116.

[0061] Alternately, electronic device 110 may transmit a bandwidth test packet to network 720 or to destination device 724, which may responsively return the bandwidth test packet to electronic device 110, or may acknowledge receiving the bandwidth test packet. Bandwidth monitor 412 may thus determine a transfer speed based upon an elapsed transfer time of the bandwidth test packet (calculated from transmission time of the test packet), and a known bandwidth test packet size or a known packet transmission distance.

[0062] In the FIG. 7 embodiment, a calculation module 416 from transfer manager 218 may then preferably determine a transfer data size value by analyzing data 216, and responsively calculate a transfer time value for the proposed data transfer operation by utilizing the foregoing transfer data size value and transfer speed value. A user interface module 320 and a display manager 222 may then display the foregoing transfer time value to the system user, who may interactively decide whether to proceed with the proposed data transfer operation, or to utilize various transfer options, as discussed above in conjunction with FIG. 6.

[0063] In certain embodiments, the system user may specify an optimal or acceptable transfer time value to transfer manager 218. In response, transfer manager 218 may advantageously determine one or more transfer options that would permit electronic device 110 to perform the data transfer operation using the requested transfer time value. For example, transfer manager 218 may calculate an optimal data format or size for achieving the desired transfer time value. In response to an authorization from the system user, transfer manager 218 may then automatically convert data 216 into the optimal format for the data transfer operation.

[0064] Referring now to FIG. 8, a flowchart of method steps for efficiently performing a data transfer operation is shown, in accordance with one embodiment of the present invention. The FIG. 8 example is presented for purposes of illustration, and, in alternate embodiments, the present invention may readily utilize various other steps and sequences than those discussed in conjunction with the FIG. 8 embodiment.

[0065] In the FIG. 8 embodiment, initially, in step 816, electronic device 110 waits for a data transfer request from a system user or other source (such as application software 212) to perform a data transfer operation using data 216. If electronic device 1 10 receives a data transfer request, then, in step 820, transfer manager 218 may preferably determine a transfer data size value corresponding to data 216 for the data transfer operation. In addition, a bandwidth monitor 412 from transfer manager 218 may preferably determine the current bandwidth (or transfer speed value) of the network communication link for the proposed data transfer operation, as discussed above in conjunction with FIG. 7.

[0066] In step 824, a calculation module 416 from transfer manager 218 may preferably calculate a transfer time value for the proposed data transfer operation. In the FIG. 8 embodiment, transfer manager 218 may determine the foregoing transfer time value using any appropriate technique. For example, transfer manager 218 may utilize the transfer data size value and the transfer speed value obtained in foregoing step 820, as discussed above in conjunction with FIG. 4.

[0067] In step 828, a user interface module 320 and a display manager 222 from electronic device 110 may preferably access transfer parameters 428 from memory 116, and responsively display the transfer parameters 428 for viewing by a system user. In the FIG. 8 embodiment, transfer parameters 428 may preferably include the transfer data size value, the transfer speed value, and the transfer time value discussed above.

[0068] In step 832, the system user determines whether the displayed transfer parameters 428 (in particular, the transfer time value) are acceptable under current circumstances. In step 844, if the displayed transfer parameters are acceptable to the system user, then electronic device 110 may preferably perform the proposed data transfer operation after receiving an authorization from the system user.

[0069] However, in step 840, if the displayed transfer parameters are not acceptable to the system user, then electronic device 110 may preferably display various transfer options for viewing by the system user. In certain embodiments, electronic device 110 may also enter a “hint” mode in which electronic device 110 may advantageously utilize appropriate hint-generation software to intelligently display various user options based upon a past history of electronic device 110. The hint mode may also selectably generate various types of explanatory information to explain aspects of the foregoing transfer options to a system user.

[0070] The system user may then interactively utilize the displayed transfer options, as discussed above in conjunction with FIG. 6. The FIG. 8 method then may preferably return to step 824 to recalculate and display transfer parameters 428 until the system user accepts the current transfer parameters 428 and authorizes the proposed data transfer operation.

[0071] The invention has been explained above with reference to certain embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. For example, the present invention may readily be implemented using configurations and techniques other than those described in the embodiments above. Additionally, the present invention may effectively be used in conjunction with systems other than those described above. Therefore, these and other variations upon the discussed embodiments are intended to be covered by the present invention, which is limited only by the appended claims. 

What is claimed is:
 1. A system for performing a data transfer operation, comprising: a source device for providing transfer data to a destination device through a communication path during said data transfer operation; and a transfer manager configured to determine a transfer duration for said data transfer operation, said source device providing said transfer duration to a system user for interactively managing said data transfer operation.
 2. The system of claim 1 wherein said source device is implemented to include a digital camera device with at least one of a processor, a display, one or more input/output interfaces, a memory, and a user interface.
 3. The system of claim 1 wherein said transfer data includes digital image data, said communication path being coupled to an Internet network, said destination device including an image station website that is coupled to said Internet network.
 4. The system of claim 1 wherein said transfer manager provides transfer options on a user interface of said source device, said system user interactively manipulating said transfer data using said transfer options to thereby change said transfer duration into an acceptable time period under current transfer conditions.
 5. The system of claim 1 wherein said transfer manager includes a bandwidth monitor for determining a current transfer speed for said data transfer operation, a calculation module for determining a data size value corresponding to said transfer data, and for calculating said transfer duration using said data size value and said current transfer speed, an option manager for controlling transfer options to interactively manipulate said transfer data, a data editor for altering said transfer data, and stored transfer parameters that include said data size value, said current transfer speed, and said transfer duration.
 6. The system of claim 1 wherein said source device includes one or more input/output interfaces that communicate with at least one of a distributed computer network, an Internet network, a host computer, a cellular telephone network, one or more user interfaces, a wireless communications network, and one or more removable storage media devices.
 7. The system of claim 1 wherein said source device includes a user interface presented by a user interface module and a display manager on a local display device, said user interface displaying a visual representation corresponding to said data transfer operation, said visual representation including a transfer data size field, a transfer speed field, a transfer time field, and one or more transfer option fields for interactive transfer optimizations performed by said system user.
 8. The system of claim 7 wherein said one or more transfer option fields include at least one of a perform transfer option, a cancel transfer option, a postpone transfer option, a change transfer-mode option, and an alter transfer-data option, said alter transfer-data option including at least one of a reduce data-size option, an increase data-size option, a crop image option, a reduce image-resolution option, an increase image-resolution option, and a compress data option.
 9. The system of claim 1 wherein at least one of said system user, a software program, and an electronic entity initially begins said data transfer procedure by issuing a data transfer request to said source device.
 10. The system of claim 9 wherein a calculation module from said transfer manager responsively determines a data size value corresponding to said transfer data, said data size value being stored in transfer parameters of a local memory device.
 11. The system of claim 10 wherein a bandwidth monitor from said transfer manager determines a transfer speed value for performing said data transfer procedure under current transfer conditions, said transfer speed value being stored in said transfer parameters of said local memory device.
 12. The system of claim 11 wherein a transfer speed module of said communication path periodically provides a bandwidth value to said transfer manager to thereby indicate current bandwidth conditions for any data transfer operations through said communication path, said bandwidth monitor responsively converting said bandwidth value into said transfer speed value that is then stored into said transfer parameters in said local memory device.
 13. The system of claim 11 wherein said source device transmits a bandwidth test packet to one of said communication path and said destination device, said one of said communication path and said destination device responsively returning an acknowledgement of said bandwidth test packet to source device, said bandwidth monitor of said transfer manager responsively calculating said transfer speed value based upon an elapsed test packet transfer time.
 14. The system of claim 11 wherein said calculation module from said transfer module calculates a transfer time value corresponding to said transfer duration, said transfer time value being stored in said transfer parameters of said local memory device.
 15. The system of claim 14 wherein said calculation module calculates said transfer time value according to a formula: Transfer Time Value=Data Size Value/Transfer Speed Value where said Transfer Time Value is an amount of time required to complete said data transfer operation in seconds, said Data Size Value is a size of said transfer data in bits, and said Transfer Speed Value is a bandwidth of said communication path for said data transfer operation in bits per second.
 16. The system of claim 14 wherein said system user authorizes said source device to perform said data transfer operation whenever said transfer time value is acceptable under said current conditions.
 17. The system of claim 14 wherein said system user interactively utilizes one or more transfer options that are presented by said source device on a user interface to thereby optimize said data transfer operation under said current conditions.
 18. The system of claim 17 wherein said transfer options include at least one of a perform transfer option, a cancel transfer option, a postpone transfer option, a change transfer-mode option, and an alter transfer-data option, said alter transfer-data option including at least one of a reduce data-size option, an increase data-size option, a crop image option, a reduce image-resolution option, an increase image-resolution option, and a compress data option.
 19. The system of claim 17 wherein said transfer manager repeatedly recalculates and displays said transfer parameters on said user interface to thereby allow said system user to optimize said data transfer operation under said current conditions.
 20. The system of claim 1 wherein said system user specifies an optimal value for said transfer duration under current conditions, said transfer manager automatically altering said transfer data using available transfer options to thereby permit said source device to perform said data transfer operation using said optimal value for said transfer duration.
 21. A method for performing a data transfer operation, comprising the steps of: transferring data from a source device to a destination device through a communication path during said data transfer operation; determining a transfer duration for said data transfer operation by using a transfer manager; and providing said transfer duration to a system user for interactively managing said data transfer operation.
 22. The method of claim 21 wherein said source device is implemented to include a digital camera device with at least one of a processor, a display, one or more input/output interfaces, a memory, and a user interface.
 23. The method of claim 21 wherein said transfer data includes digital image data, said communication path being coupled to an Internet network, said destination device including an image station website that is coupled to said Internet network.
 24. The method of claim 21 wherein said transfer manager provides transfer options on a user interface of said source device, said system user interactively manipulating said transfer data using said transfer options to thereby change said transfer duration into an acceptable time period under current transfer conditions.
 25. The method of claim 21 wherein said transfer manager includes a bandwidth monitor for determining a current transfer speed for said data transfer operation, a calculation module for determining a data size value corresponding to said transfer data, and for calculating said transfer duration using said data size value and said current transfer speed, an option manager for controlling transfer options to interactively manipulate said transfer data, a data editor for altering said transfer data, and stored transfer parameters that include said data size value, said current transfer speed, and said transfer duration.
 26. The method of claim 21 wherein said source device includes one or more input/output interfaces that communicate with at least one of a distributed computer network, an Internet network, a host computer, a cellular telephone network, one or more user interfaces, a wireless communications network, and one or more removable storage media devices.
 27. The method of claim 21 wherein said source device includes a user interface presented by a user interface module and a display manager on a local display device, said user interface displaying a visual representation corresponding to said data transfer operation, said visual representation including a transfer data size field, a transfer speed field, a transfer time field, and one or more transfer option fields for interactive transfer optimizations performed by said system user.
 28. The method of claim 27 wherein said one or more transfer option fields include at least one of a perform transfer option, a cancel transfer option, a postpone transfer option, a change transfer-mode option, and an alter transfer-data option, said alter transfer-data option including at least one of a reduce data-size option, an increase data-size option, a crop image option, a reduce image-resolution option, an increase image-resolution option, and a compress data option.
 29. The method of claim 21 wherein at least one of said system user, a software program, and an electronic entity initially begins said data transfer procedure by issuing a data transfer request to said source device.
 30. The method of claim 29 wherein a calculation module from said transfer manager responsively determines a data size value corresponding to said transfer data, said data size value being stored in transfer parameters of a local memory device.
 31. The method of claim 30 wherein a bandwidth monitor from said transfer manager determines a transfer speed value for performing said data transfer procedure under current transfer conditions, said transfer speed value being stored in said transfer parameters of said local memory device.
 32. The method of claim 31 wherein a transfer speed module of said communication path periodically provides a bandwidth value to said transfer manager to thereby indicate current bandwidth conditions for any data transfer operations through said communication path, said bandwidth monitor responsively converting said bandwidth value into said transfer speed value that is then stored into said transfer parameters in said local memory device.
 33. The method of claim 31 wherein said source device transmits a bandwidth test packet to one of said communication path and said destination device, said one of said communication path and said destination device responsively returning an acknowledgement of said bandwidth test packet to source device, said bandwidth monitor of said transfer manager responsively calculating said transfer speed value based upon an elapsed test packet transfer time.
 34. The method of claim 31 wherein said calculation module from said transfer module calculates a transfer time value corresponding to said transfer duration, said transfer time value being stored in said transfer parameters of said local memory device.
 35. The method of claim 34 wherein said calculation module calculates said transfer time value according to a formula: Transfer Time Value=Data Size Value/Transfer Speed Value where said Transfer Time Value is an amount of time required to complete said data transfer operation in seconds, said Data Size Value is a size of said transfer data in bits, and said Transfer Speed Value is a bandwidth of said communication path for said data transfer operation in bits per second.
 36. The method of claim 34 wherein said system user authorizes said source device to perform said data transfer operation whenever said transfer time value is acceptable under said current conditions.
 37. The method of claim 34 wherein said system user interactively utilizes one or more transfer options that are presented by said source device on a user interface to thereby optimize said data transfer operation under said current conditions.
 38. The method of claim 37 wherein said transfer options include at least one of a perform transfer option, a cancel transfer option, a postpone transfer option, a change transfer-mode option, and an alter transfer-data option, said alter transfer-data option including at least one of a reduce data-size option, an increase data-size option, a crop image option, a reduce image-resolution option, an increase image-resolution option, and a compress data option.
 39. The method of claim 37 wherein said transfer manager repeatedly recalculates and displays said transfer parameters on said user interface to thereby allow said system user to optimize said data transfer operation under said current conditions.
 40. The method of claim 21 wherein said system user specifies an optimal value for said transfer duration under current conditions, said transfer manager automatically altering said transfer data using available transfer options to thereby permit said source device to perform said data transfer operation using said optimal value for said transfer duration.
 41. The method of claim 21 further comprising the step of entering a hint mode wherein said transfer manager provides one or more transfer options for performing said data transfer operation, and wherein a hint subroutine responsively generates at least one of a transfer recommendation and a transfer explanation for said data transfer operation, said hint subroutine being activated by at least one of a system user action and an automatic initiation event from said source device.
 42. A computer-readable medium comprising program instructions for transferring data by performing the steps of: transferring data from a source device to a destination device through a communication path during said data transfer operation; determining a transfer duration for said data transfer operation by using a transfer manager; and providing said transfer duration to a system user for interactively managing said data transfer operation.
 43. A system for performing a data transfer operation, comprising: means for transferring data from a source device to a destination device through a communication path during said data transfer operation; means for determining a transfer duration for said data transfer operation; and means for providing said transfer duration to a system user for interactively managing said data transfer operation. 